package com.wangyb.wework.entity.contact;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * @Author: wangyb
 * @Date: 2021/7/8 2:20 下午
 */
@Data
@NoArgsConstructor
@Accessors(chain = true)
@TableName("ww_groupchat_member")
public class WwGroupchatMember implements Serializable {

	private static final long serialVersionUID=1L;


	/** $column.columnComment */
	private Long id;

	/** 客户群id ww_groupchat.id */
	private Long groupchatId;

	/** 企业id   ww_corp.id */
	private Long corpId;

	/** 群成员id,可能是ww_contact.wx_user_id,或者是ww_employee.wx_user_id */
	@JSONField(name = "userid")
	private String wxUserid;

	/** 成员类型 1 - 企业成员 2 - 外部联系人 */
	@JSONField
	private Integer type;

	/** 外部联系人在微信开放平台的唯一身份标识（微信unionid），通过此字段企业可将外部联系人与公众号/小程序用户关联起来。仅当群成员类型是微信用户（包括企业成员未添加好友），且企业或第三方服务商绑定了微信开发者ID有此字段 */
	@JSONField
	private String unionid;

	/** 入群时间 */
	@JSONField(name = "join_time",format="unixtime")
	private Date joinTime;
	/** 入群方式。1 - 由群成员邀请入群（直接邀请入群）2 - 由群成员邀请入群（通过邀请链接入群）3 - 通过扫描群二维码入群 */
	@JSONField(name = "join_scene")
	private Integer joinScene;

	/** 退群时间 */
	private Date quitTime;
	/** 退群方式 退群方式  0 - 自己退群  1 - 群主/群管理员移出*/
	private Integer quitScene;

	/** 群成员状态 1-正常 2-退群 */
	private Integer status;

	/** 是否为群管理员 1-是 0-否 */
	private Integer adminStatus;



	/** 邀请者。ww_employee.wx_user_id 目前仅当是由本企业内部成员邀请入群时会返回该值 */
	private String invitorWxUserid;

	@TableField(exist = false)
	@JSONField(name = "invitor")
	private WwGroupchat.User invitor;


	/** $column.columnComment */
	@TableField(fill = FieldFill.INSERT)
	private Date createTime;

	/** $column.columnComment */
	@TableField(fill = FieldFill.INSERT_UPDATE)
	private Date updateTime;
}
